assume cs:code

data segment
    db 'abcd',0
    db 'efgh',0
    db 'ijkl',0
    db 'mnop',0
data ends

stack segment
    dw 8 dup('0')
code segment
start:  mov ax,data
        mov ds,ax
        mov bx,0
        mov ax,stack
        mov ss,ax
        mov dx,16

        mov cx,4
    s:  
        push cx
        mov si,bx
        call capital
        add bx,5
        pop cx
        loop s

        mov ax,4c00H
        int 21h

    capital:
        mov cl,[si]
        mov ch,0
        jcxz ok
        and byte ptr [si],0DFH
        inc si
        jmp short capital 

    ok: ret

code ends
end  start